[CODE BLUE 2018] 金融取引サービスにおけるセキュリティの欠陥 アレジャンドロ・エルナンデス [レポート] #codeblue_jp
こんにちは、臼田です。
『世界トップクラスのセキュリティ専門家による日本発の情報セキュリティ国際会議』でありますCODE BLUE 2018に参加していますのでレポートします。
このブログは下記セッションについてのレポートです。
金融取引サービスにおけるセキュリティの欠陥 アレジャンドロ・エルナンデス
電子取引プラットフォームやネットワークの出現により、金融証券の取引はこれまで以上に容易かつ迅速になったが、これにはリスクも伴っている。今日では、富裕層だけが金融市場に投資するのではなく、携帯電話やデスクトップアプリケーション、Webサイトから10ドルもあれば人々は株式売買を始めることができる。
問題は、フィンテック業界のこの分野が完全にはサイバーセキュリティの傘の下には入っていないという点である。時には、1日に何億もの取引に使用されている技術のように、製品が本質的に安全であると想定することもあるが、セキュリティテストでは別の話がある。
この講演では、何百万人というトレーダーに影響を与える脆弱性の詳細について解説する。対象として以下のプラットフォームが含まれる: - 16のデスクトップアプリケーション - 30のWebサイト - 34のモバイルアプリ
最終的に、オンラインバンキングにおけるセキュリティとトレーディング技術の間のギャップが明瞭になるだろう。トレーディングエコシステムのセキュリティを改善するための道のりはまだまだ長いが、そのための車輪はすでに開発されており、一般的なセキュリティ対策が適用され得るだろう。
レポート
- IOActiveが提供しているレポート
- 証券取引所はIT化して高速で安価になった
- 企業は証券取引所で資金調達ができる
- 証券取引所と銀行ネットワークの違い
- 銀行は中央があり集中管理
- 証券取引所は分散ネットワークになる
- 金融セクターだが攻撃のベクトルはぜんぜん違う
- トレーディングソフトウェア
- 銀行、カード情報
- 資金やマーケットのモニタリング
- トレーディングなど
- 殆どの情報が機密で所有者のみ知るべき情報
- 種類
- TD Ameritrade
- Charles Schwab
- Coinbase
- Markets.com
- 等々
- スコープ
- 統計的な分析
- 40社の証券システムが対象
- 日本/アジアのものは含まれていない
- 分析
- どこにセキュリティコントロールがあるか
- 認証がどうなっているのか
- 何をサポートしているのか
- 暗号化しているのか
- webなら2要素認証とかXSSとか
- 残念ながらこの分野のテクノロジーは遅れている
- 特に銀行のアプリと比べるとかなり弱い
- どこにセキュリティコントロールがあるか
- なぜ銀行より弱いのか
- 暗号化されていない
- 特にデスクトップアプリは暗号化できていない
- HTTP, FIXや独自のプロトコルも使われている
- HTTPのGETで機微な情報をすべて含めている
- APIのログイントークンを持っている
- eシグナルではユーザIDパスワードがそのまま残っている
- 実は99年のソフト、20年ぐらい使われている
- FIXはHTTPも選択できる
- デモ
- 証券を注文した
- 基本的にHTTPS
- 新しい機能は脆弱であった
- 入力値がそのまま見えている
- もし残高を確認したりしたらそれも見えてしまう
- ログイン画面にSSLボタンがある
- SSLしててもログファイルにはplane text
- 暗号化されていない通信にあるセッションIDを取ればハイジャックできてしまう
- DoS
- 多くのアプリケーションはコネクション数を絞っていない
- これによりユーザ側のアプリが使い物にならなくなる
- レポートが作成されデベロッパに送られる
- その中にスクリーンショットが含まれていて、残高などが取られる
- 何をすべきか
- 接続数を絞るべき
- これはバグではなく仕様
- トレーディング言語DLL
- 様々なDLLをインポートできる
- 物によっては警告を出すものがあるが、そうでないものもある
- デモ
- バックドアを仕込んだDLLを読ませる
- 警告は一応出たが、このアプリ以外では出なかった
- パスワードストアの非暗号化
- デスクトップアプリ、モバイルアプリそれぞれ21%ほどのものが暗号化していなかった
- 保存場所はコンフィグファイルやログファイル等
- ETXではログイン画面でパスワードを埋め込んでいる
- パスワード変更時にplane textのログが出るものもある
- パスワードの保存先が複数ある場合もある
- トレードデータの非暗号化
- かなりいっぱいある
- 弱いパスワードポリシー
12345
が可能なものもある- 短くさせるものもある、12桁以内とか
- 認証
- 2要素認証が必須でないことは多い
- 新しい口座の追加や高額取引にはつけるべき
- 指紋認証は適切に処理されないこともある
- ログアウト後のセッション搾取
- いくつかのサイトでセッションが無効化されていない
- HTTP Headers
- HttpOnlyやSecureオプションが無い
- Privacy mode
- Hardcoded secrets
- パスワードや秘密鍵やコードネーム
- hostnameやinternal IPなど
- anti malware
- no PIEであったりする
- Root detection
- 検知しない
- XSS
- 等々
- 詳細は上記のレポートを参照
- 誤解を呼ぶ情報
- 怪しいサイトのまとめた情報
- フェイクニュース
- レコメンド
- 可能な限り2FAなどユーザが利用すべき機能をアプリがプッシュする必要がある
- 証券会社はフロントエンドもバックエンドもしっかりセキュリティを保つ必要がある
感想
10年くらい前のような脆弱な実装が残っていることが多いことがわかりました。金銭を扱うツールは、しっかりしたものを使いたいですね。
特にデスクトップアプリやモバイルアプリは、一ユーザでは見れないことも多いので、怖いですね。